スコープ

スコープとは?

変数、定数、引数がスクリプト内のどこの場所から定義されているか、どこで値を参照できるかを決めるもの。概念

グローバルスコープとローカルスコープ

全体を参照…グルーバルスコープ(赤枠)
定義された関数の中で参照…ローカルスコープ(黄枠)

グローバルスコープでの変数…グローバル変数(赤点線枠)
ローカルスコープ内での変数…ローカル変数
(黄点線枠)

赤枠がグローバルスコープ
黄枠がローカルスコープ

constの宣言を外すと変数が上書きされてしまいます

エラーを防ぐためにconstもしくはletで宣言しておくクセをつけた方が良さそうですね!

ブロックスコープ

ブロックスコープ

ブロック({…})の範囲で変数が存在するスコープ

青枠出力
赤枠出力 黄枠出力
白枠(ブロックスコープ)→赤枠、黄枠がブロック内で出力できる有効範囲です
ブロック外で宣言をした緑枠→エラーになります

ブロック内外で変数名が重なった場合はどうなるんだろう?
変数名が被ってもブロックで囲われているのでconsoleエラーになってないですね!

白枠内で赤枠を宣言してます
さらにその中の青枠でブロックスコープの宣言をしてもエラー起こってないですね!

おすすめの記事